from flask import render_template, current_app, session
from info import redis_store
from info.models import User
from . import index_blu










@index_blu.route('/')
def index1():
    """
    显示首页
    1.如果用户已经登录，将当前登录用户的数据传到模板中，供模板显示
    :return:
    """
    user_id = session.get("user_id",None)
    user =None
    if user_id:
        # 尝试查询用户的模型
        try:
            user = User.query.get(user_id)
        except Exception as e:
            current_app.logger.error(e)

    #右侧的新闻排行的逻辑

    data ={
        "user":user.to_dict() if user else None
        # to_dict是一个封装user对象属性的函数，为字典的保存方式
        #此举是将user实力对象的所有属性封装到一个字典中,并且返回到前端
    }
    return render_template('news/index.html',data=data)






@index_blu.route('/')
def index():
    #向redis中保存一个值 name itcast
    # redis_store.set("name","itcast")
    return render_template('news/index.html')

#在打开网页的时候，浏览器会默认去请求根路径 favicon.ioc作为网站标签的小图标
#send_static_file是Flask去查找指定的静态文件所调用的方法。
@index_blu.route('/favicon.ico')
def favicon():
    return current_app.send_static_file('news/favicon.ico')
#这里的current_app是应用上下文中的可以通过current_app.name打印当前app的名称，也可以在current_app中存储一些变量，例如：
# 应用的启动脚本是哪个文件，启动时指定了哪些参数
# 加载了哪些配置文件，导入了哪些配置
# 连了哪个数据库
# 有哪些public的工具类、常量
# 应用跑再哪个机器上，IP多少，内存多大
